/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Hogar;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.*;
import java.lang.*;
public class CargaEstados extends Form implements CommandListener, Runnable{
private Gauge carga;
private int indice, numluces;
private Command cancelar, aceptar, salir;
private Thread t;
private Hogar midlet;
public CargaEstados(Hogar midlet){
super("Cargando información");
this.midlet = midlet;
carga = new Gauge("Pulse Aceptar",false,15,0);
cancelar = new Command("Cancelar",Command.CANCEL,1);
aceptar = new Command("Aceptar",Command.OK,1);
salir = new Command("Salir",Command.EXIT,1);
this.append(carga);
this.addCommand(aceptar);
this.setCommandListener(this);
}
public void start(){
t = new Thread(this);
t.start();
}
public void run(){
System.out.println("Carga en pantalla");
carga.setLabel("Comprobando alarma");
System.out.println("Comprobando alarma");
verEstadoAlarma();
System.out.println("Estado alarma comprobado correctamente");
carga.setValue(3);
carga.setLabel("Comprobando calefacción");
verEstadoCalefaccion();
System.out.println("Estado calefacción comprobado correctamente");
carga.setValue(6);
carga.setLabel("Comprobando luces");
verEstadoLuz();
System.out.println("Estado luces comprobado correctamente");
carga.setValue(9);
carga.setLabel("Comprobando microondas");
verEstadoMicroondas();
System.out.println("Estado microondas comprobado correctamente");
carga.setValue(12);
carga.setLabel("Comprobando vídeo");
verEstadoVideo();
System.out.println("Estado video comprobado correctamente");
carga.setValue(15);
carga.setLabel("Estableciendo coordenadas");
establecerCoordenadas();
carga.setLabel("Carga Completa");
try{
t.sleep(1000);
}catch (Exception e){
System.out.println(e);
}
midlet.verOpciones();
}
public void commandAction(Command c, Displayable d){
if (c==cancelar){
//
}else if (c==aceptar){
this.removeCommand(aceptar);
this.addCommand(cancelar);
this.start();
}
}
private void verEstadoAlarma(){
boolean[] est;
int numHab = midlet.edificio.getNumHabitaciones();
est = new boolean[numHab];
for (int i=0;i<numHab;i++)
est[i] = false;
midlet.edificio.setAlarma(est);
midlet.setInfoAlarma2(est);
try{
t.sleep(1000);
}catch(Exception e){
System.out.println("Error en estado alarma");
}
}
private void verEstadoCalefaccion(){
int[] est;
int numHab = midlet.edificio.getNumHabitaciones();
est = new int[numHab];
for (int i=0;i<numHab;i++)
est[i] = 0;
midlet.edificio.establecerTemperatura(est);
try{
t.sleep(1000);
}catch(Exception e){
System.out.println("Error en estado calefaccion");
}
}
private void verEstadoMicroondas(){
boolean estado = false;
midlet.edificio.setMicroondas(estado);
try{
t.sleep(1000);
}catch(Exception e){
System.out.println("Error en estado microondas");
}
}
private void verEstadoVideo(){
boolean estado = false;
midlet.edificio.setVideo(estado);
try{
t.sleep(1000);
}catch(Exception e){
System.out.println("Error en estado video");
}
}
public void verEstadoLuz(){
numluces = 6;
midlet.edificio.setNumLuces(numluces);
boolean[] est = new boolean[6];
for (int i=0;i<6;i++)
est[i] = false;
midlet.edificio.setEstadoLuz(est);
midlet.setInfoLuz1(est);
}
public void establecerCoordenadas(){
try{
t.sleep(1000);
int numHab = midlet.edificio.getNumHabitaciones();
int[][] coord = new int[numHab][4];
coord[0][0] = 9;coord[0][2] = 86;
coord[0][1] = 12;coord[0][3] = 47;
coord[1][0] = 98;coord[1][1] = 14;
coord[1][2] = 77;coord[1][3] = 83;
coord[2][0] = 11;coord[2][1] = 65;
coord[2][2] = 84;coord[2][3] = 93;
coord[3][0] = 100;coord[3][1] = 102;
coord[3][2] = 73;coord[3][3] = 56;
int[][] ady = new int[numHab][4];
ady[0][0] = 0;ady[0][1] = 3;
ady[0][2] = 2;ady[0][3] = 0;
ady[1][0] = 0;ady[1][1] = 4;
ady[1][2] = 0;ady[1][3] = 1;
ady[2][0] = 1;ady[2][1] = 0;
ady[2][2] = 4;ady[2][3] = 0;
ady[3][0] = 2;ady[3][1] = 0;
ady[3][2] = 0;ady[3][3] = 3;
int[][] coordTemp = new int[numHab][2];
coordTemp[0][0] = 45;coordTemp[0][1] = 44;
coordTemp[1][0] = 128;coordTemp[1][1] = 80;
coordTemp[2][0] = 47;coordTemp[2][1] = 72;
coordTemp[3][0] = 130;coordTemp[3][1] = 106;
int[][] coordluz = new int[numluces][2];
coordluz[0][0] = 45;coordluz[0][1] = 36;
coordluz[1][0] = 103;coordluz[1][1] = 20;
coordluz[2][0] = 132;coordluz[2][1] = 49;
coordluz[3][0] = 64;coordluz[3][1] = 73;
coordluz[4][0] = 55;coordluz[4][1] = 105;
coordluz[5][0] = 150;coordluz[5][1] = 116;
midlet.edificio.establecerAdyacencia(ady);
midlet.edificio.establecerCoord(coord);
midlet.edificio.setCoordTemp(coordTemp);
midlet.edificio.setCoordLuz(coordluz);
midlet.setInfoLuz2(coordluz);
midlet.setInfoAlarma1(coordTemp);
coord = null;
ady = null;
coordluz = null;
coordTemp = null;
}catch (Exception e){
System.out.println("Error al establecer coordenadas");
}
}
}